// 记忆函数
// 模拟lodash中的memoize函数 做到缓存数据的作用
function memoize(f) {
    let cache = {};
    return function () {
        // 将参数作为key 保存起来
        let key = JSON.stringify(arguments);
        // 如果有这个key对应的值则使用,如果没有再调用函数
        cache[key] = cache[key] || f.apply(f, arguments);
        return cache[key]
    };
}
// 获取圆面积的函数
function getArea(r) {
    console.log(r);
    return Math.PI * r * r;
}
// 纯函数的好处,可缓存, getArea函数将只会执行一次
let getAreaWithMemory = memoize(getArea)
console.log(getAreaWithMemory(2));
console.log(getAreaWithMemory(2));
console.log(getAreaWithMemory(2));
console.log(getAreaWithMemory(2));
